.class public Landroid/text/StaticLayout;
.super Landroid/text/Layout;
.source "StaticLayout.java"


# static fields
.field private static final COLUMNS_ELLIPSIZE:I = 0x5

.field private static final COLUMNS_NORMAL:I = 0x3

.field private static final DESCENT:I = 0x2

.field private static final DIR:I = 0x0

.field private static final DIR_MASK:I = -0x40000000

.field private static final DIR_SHIFT:I = 0x1e

.field private static final ELLIPSIS_COUNT:I = 0x4

.field private static final ELLIPSIS_START:I = 0x3

.field private static final FIRST_CJK:C = '\u2e80'

.field private static final FIRST_RIGHT_TO_LEFT:C = '\u0590'

.field private static final START:I = 0x0

.field private static final START_MASK:I = 0x1fffffff

.field private static final TAB:I = 0x0

.field private static final TAB_MASK:I = 0x20000000

.field private static final TOP:I = 0x1


# instance fields
.field private mBottomPadding:I

.field private mChdirs:[B

.field private mChs:[C

.field private mColumns:I

.field private mEllipsizedWidth:I

.field private mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

.field private mLineCount:I

.field private mLineDirections:[Landroid/text/Layout$Directions;

.field private mLines:[I

.field private mTopPadding:I

.field private mWidths:[F


# direct methods
.method public constructor <init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
    .registers 22
    .parameter "source"
    .parameter "bufstart"
    .parameter "bufend"
    .parameter "paint"
    .parameter "outerwidth"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"

    .prologue
    .line 54
    const/4 v10, 0x0

    const/4 v11, 0x0

    move-object v0, p0

    move-object v1, p1

    move v2, p2

    move v3, p3

    move-object/from16 v4, p4

    move/from16 v5, p5

    move-object/from16 v6, p6

    move/from16 v7, p7

    move/from16 v8, p8

    move/from16 v9, p9

    invoke-direct/range {v0 .. v11}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V

    .line 56
    return-void
.end method

.method public constructor <init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZLandroid/text/TextUtils$TruncateAt;I)V
    .registers 29
    .parameter "source"
    .parameter "bufstart"
    .parameter "bufend"
    .parameter "paint"
    .parameter "outerwidth"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"
    .parameter "ellipsize"
    .parameter "ellipsizedWidth"

    .prologue
    .line 64
    if-nez p10, :cond_a3

    move-object/from16 v3, p1

    :goto_4
    move-object/from16 v2, p0

    move-object/from16 v4, p4

    move/from16 v5, p5

    move-object/from16 v6, p6

    move/from16 v7, p7

    move/from16 v8, p8

    invoke-direct/range {v2 .. v8}, Landroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V

    .line 1364
    new-instance v2, Landroid/graphics/Paint$FontMetricsInt;

    invoke-direct {v2}, Landroid/graphics/Paint$FontMetricsInt;-><init>()V

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    .line 79
    if-eqz p10, :cond_c0

    .line 80
    invoke-virtual/range {p0 .. p0}, Landroid/text/StaticLayout;->getText()Ljava/lang/CharSequence;

    move-result-object v16

    check-cast v16, Landroid/text/Layout$Ellipsizer;

    .line 82
    .local v16, e:Landroid/text/Layout$Ellipsizer;
    move-object/from16 v0, p0

    move-object/from16 v1, v16

    iput-object v0, v1, Landroid/text/Layout$Ellipsizer;->mLayout:Landroid/text/Layout;

    .line 83
    move/from16 v0, p11

    move-object/from16 v1, v16

    iput v0, v1, Landroid/text/Layout$Ellipsizer;->mWidth:I

    .line 84
    move-object/from16 v0, p10

    move-object/from16 v1, v16

    iput-object v0, v1, Landroid/text/Layout$Ellipsizer;->mMethod:Landroid/text/TextUtils$TruncateAt;

    .line 85
    move/from16 v0, p11

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mEllipsizedWidth:I

    .line 87
    const/4 v2, 0x5

    move v0, v2

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mColumns:I

    .line 93
    .end local v16           #e:Landroid/text/Layout$Ellipsizer;
    :goto_43
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v2, v0

    mul-int/lit8 v2, v2, 0x2

    invoke-static {v2}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v2

    new-array v2, v2, [I

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLines:[I

    .line 94
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v2, v0

    mul-int/lit8 v2, v2, 0x2

    invoke-static {v2}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v2

    new-array v2, v2, [Landroid/text/Layout$Directions;

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    .line 97
    if-eqz p10, :cond_ce

    const/4 v2, 0x1

    move v13, v2

    :goto_6b
    move/from16 v0, p11

    int-to-float v0, v0

    move v14, v0

    move-object/from16 v2, p0

    move-object/from16 v3, p1

    move/from16 v4, p2

    move/from16 v5, p3

    move-object/from16 v6, p4

    move/from16 v7, p5

    move-object/from16 v8, p6

    move/from16 v9, p7

    move/from16 v10, p8

    move/from16 v11, p9

    move/from16 v12, p9

    move-object/from16 v15, p10

    invoke-virtual/range {v2 .. v15}, Landroid/text/StaticLayout;->generate(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZZZFLandroid/text/TextUtils$TruncateAt;)V

    .line 101
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChdirs:[B

    .line 102
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChs:[C

    .line 103
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mWidths:[F

    .line 104
    const/4 v2, 0x0

    move-object v0, v2

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    .line 105
    return-void

    .line 64
    :cond_a3
    move-object/from16 v0, p1

    instance-of v0, v0, Landroid/text/Spanned;

    move v2, v0

    if-eqz v2, :cond_b5

    new-instance v2, Landroid/text/Layout$SpannedEllipsizer;

    move-object v0, v2

    move-object/from16 v1, p1

    invoke-direct {v0, v1}, Landroid/text/Layout$SpannedEllipsizer;-><init>(Ljava/lang/CharSequence;)V

    move-object v3, v2

    goto/16 :goto_4

    :cond_b5
    new-instance v2, Landroid/text/Layout$Ellipsizer;

    move-object v0, v2

    move-object/from16 v1, p1

    invoke-direct {v0, v1}, Landroid/text/Layout$Ellipsizer;-><init>(Ljava/lang/CharSequence;)V

    move-object v3, v2

    goto/16 :goto_4

    .line 89
    :cond_c0
    const/4 v2, 0x3

    move v0, v2

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mColumns:I

    .line 90
    move/from16 v0, p5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mEllipsizedWidth:I

    goto/16 :goto_43

    .line 97
    :cond_ce
    const/4 v2, 0x0

    move v13, v2

    goto :goto_6b
.end method

.method public constructor <init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V
    .registers 18
    .parameter "source"
    .parameter "paint"
    .parameter "width"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"

    .prologue
    .line 45
    const/4 v2, 0x0

    invoke-interface {p1}, Ljava/lang/CharSequence;->length()I

    move-result v3

    move-object v0, p0

    move-object v1, p1

    move-object v4, p2

    move v5, p3

    move-object v6, p4

    move v7, p5

    move/from16 v8, p6

    move/from16 v9, p7

    invoke-direct/range {v0 .. v9}, Landroid/text/StaticLayout;-><init>(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZ)V

    .line 47
    return-void
.end method

.method constructor <init>(Z)V
    .registers 9
    .parameter "ellipsize"

    .prologue
    const/4 v5, 0x0

    const/4 v1, 0x0

    .line 108
    const/4 v3, 0x0

    move-object v0, p0

    move-object v2, v1

    move-object v4, v1

    move v6, v5

    invoke-direct/range {v0 .. v6}, Landroid/text/Layout;-><init>(Ljava/lang/CharSequence;Landroid/text/TextPaint;ILandroid/text/Layout$Alignment;FF)V

    .line 1364
    new-instance v0, Landroid/graphics/Paint$FontMetricsInt;

    invoke-direct {v0}, Landroid/graphics/Paint$FontMetricsInt;-><init>()V

    iput-object v0, p0, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    .line 110
    const/4 v0, 0x5

    iput v0, p0, Landroid/text/StaticLayout;->mColumns:I

    .line 111
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/lit8 v0, v0, 0x2

    invoke-static {v0}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v0

    new-array v0, v0, [I

    iput-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    .line 112
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/lit8 v0, v0, 0x2

    invoke-static {v0}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v0

    new-array v0, v0, [Landroid/text/Layout$Directions;

    iput-object v0, p0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    .line 114
    return-void
.end method

.method private calculateEllipsis(II[FIIFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;)V
    .registers 29
    .parameter "linestart"
    .parameter "lineend"
    .parameter "widths"
    .parameter "widstart"
    .parameter "widoff"
    .parameter "avail"
    .parameter "where"
    .parameter "line"
    .parameter "textwidth"
    .parameter "paint"

    .prologue
    .line 1171
    sub-int v8, p2, p1

    .line 1173
    .local v8, len:I
    cmpg-float v15, p9, p6

    if-gtz v15, :cond_2d

    .line 1175
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x3

    const/16 v17, 0x0

    aput v17, v15, v16

    .line 1176
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x4

    const/16 v17, 0x0

    aput v17, v15, v16

    .line 1247
    :goto_2c
    return-void

    .line 1180
    :cond_2d
    const-string v15, "\u2026"

    move-object/from16 v0, p10

    move-object v1, v15

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->measureText(Ljava/lang/String;)F

    move-result v4

    .line 1183
    .local v4, ellipsiswid:F
    sget-object v15, Landroid/text/TextUtils$TruncateAt;->START:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p7

    move-object v1, v15

    if-ne v0, v1, :cond_7c

    .line 1184
    const/4 v13, 0x0

    .line 1187
    .local v13, sum:F
    move v5, v8

    .local v5, i:I
    :goto_3f
    if-ltz v5, :cond_53

    .line 1188
    const/4 v15, 0x1

    sub-int v15, v5, v15

    add-int v15, v15, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1190
    .local v14, w:F
    add-float v15, v14, v13

    add-float/2addr v15, v4

    cmpl-float v15, v15, p6

    if-lez v15, :cond_78

    .line 1197
    .end local v14           #w:F
    :cond_53
    const/4 v3, 0x0

    .line 1198
    .local v3, ellipsisStart:I
    move v2, v5

    .line 1245
    .end local v5           #i:I
    .end local v13           #sum:F
    .local v2, ellipsisCount:I
    :goto_55
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x3

    aput v3, v15, v16

    .line 1246
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object v15, v0

    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move/from16 v16, v0

    mul-int v16, v16, p8

    add-int/lit8 v16, v16, 0x4

    aput v2, v15, v16

    goto :goto_2c

    .line 1194
    .end local v2           #ellipsisCount:I
    .end local v3           #ellipsisStart:I
    .restart local v5       #i:I
    .restart local v13       #sum:F
    .restart local v14       #w:F
    :cond_78
    add-float/2addr v13, v14

    .line 1187
    add-int/lit8 v5, v5, -0x1

    goto :goto_3f

    .line 1199
    .end local v5           #i:I
    .end local v13           #sum:F
    .end local v14           #w:F
    :cond_7c
    sget-object v15, Landroid/text/TextUtils$TruncateAt;->END:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p7

    move-object v1, v15

    if-eq v0, v1, :cond_8a

    sget-object v15, Landroid/text/TextUtils$TruncateAt;->MARQUEE:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p7

    move-object v1, v15

    if-ne v0, v1, :cond_a5

    .line 1200
    :cond_8a
    const/4 v13, 0x0

    .line 1203
    .restart local v13       #sum:F
    const/4 v5, 0x0

    .restart local v5       #i:I
    :goto_8c
    if-ge v5, v8, :cond_9d

    .line 1204
    add-int v15, v5, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1206
    .restart local v14       #w:F
    add-float v15, v14, v13

    add-float/2addr v15, v4

    cmpl-float v15, v15, p6

    if-lez v15, :cond_a1

    .line 1213
    .end local v14           #w:F
    :cond_9d
    move v3, v5

    .line 1214
    .restart local v3       #ellipsisStart:I
    sub-int v2, v8, v5

    .line 1215
    .restart local v2       #ellipsisCount:I
    goto :goto_55

    .line 1210
    .end local v2           #ellipsisCount:I
    .end local v3           #ellipsisStart:I
    .restart local v14       #w:F
    :cond_a1
    add-float/2addr v13, v14

    .line 1203
    add-int/lit8 v5, v5, 0x1

    goto :goto_8c

    .line 1216
    .end local v5           #i:I
    .end local v13           #sum:F
    .end local v14           #w:F
    :cond_a5
    const/4 v9, 0x0

    .local v9, lsum:F
    const/4 v12, 0x0

    .line 1217
    .local v12, rsum:F
    const/4 v7, 0x0

    .local v7, left:I
    move v11, v8

    .line 1219
    .local v11, right:I
    sub-float v15, p6, v4

    const/high16 v16, 0x4000

    div-float v10, v15, v16

    .line 1220
    .local v10, ravail:F
    move v11, v8

    :goto_b0
    if-ltz v11, :cond_c3

    .line 1221
    const/4 v15, 0x1

    sub-int v15, v11, v15

    add-int v15, v15, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1223
    .restart local v14       #w:F
    add-float v15, v14, v12

    cmpl-float v15, v15, v10

    if-lez v15, :cond_dd

    .line 1230
    .end local v14           #w:F
    :cond_c3
    sub-float v15, p6, v4

    sub-float v6, v15, v12

    .line 1231
    .local v6, lavail:F
    const/4 v7, 0x0

    :goto_c8
    if-ge v7, v11, :cond_d8

    .line 1232
    add-int v15, v7, p1

    sub-int v15, v15, p4

    add-int v15, v15, p5

    aget v14, p3, v15

    .line 1234
    .restart local v14       #w:F
    add-float v15, v14, v9

    cmpl-float v15, v15, v6

    if-lez v15, :cond_e1

    .line 1241
    .end local v14           #w:F
    :cond_d8
    move v3, v7

    .line 1242
    .restart local v3       #ellipsisStart:I
    sub-int v2, v11, v7

    .restart local v2       #ellipsisCount:I
    goto/16 :goto_55

    .line 1227
    .end local v2           #ellipsisCount:I
    .end local v3           #ellipsisStart:I
    .end local v6           #lavail:F
    .restart local v14       #w:F
    :cond_dd
    add-float/2addr v12, v14

    .line 1220
    add-int/lit8 v11, v11, -0x1

    goto :goto_b0

    .line 1238
    .restart local v6       #lavail:F
    :cond_e1
    add-float/2addr v9, v14

    .line 1231
    add-int/lit8 v7, v7, 0x1

    goto :goto_c8
.end method

.method private static getFit(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IIF)I
    .registers 16
    .parameter "paint"
    .parameter "workPaint"
    .parameter "text"
    .parameter "start"
    .parameter "end"
    .parameter "wid"

    .prologue
    const/4 v5, 0x0

    const/4 v6, 0x1

    .line 985
    add-int/lit8 v8, p4, 0x1

    .local v8, high:I
    sub-int v9, p3, v6

    .line 987
    .local v9, low:I
    :goto_6
    sub-int v0, v8, v9

    if-le v0, v6, :cond_1f

    .line 988
    add-int v0, v8, v9

    div-int/lit8 v4, v0, 0x2

    .local v4, guess:I
    move-object v0, p0

    move-object v1, p1

    move-object v2, p2

    move v3, p3

    move-object v7, v5

    .line 990
    invoke-static/range {v0 .. v7}, Landroid/text/StaticLayout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    move-result v0

    cmpl-float v0, v0, p5

    if-lez v0, :cond_1d

    .line 992
    move v8, v4

    goto :goto_6

    .line 994
    :cond_1d
    move v9, v4

    goto :goto_6

    .line 997
    .end local v4           #guess:I
    :cond_1f
    if-ge v9, p3, :cond_23

    move v0, p3

    .line 1000
    :goto_22
    return v0

    :cond_23
    move v0, v9

    goto :goto_22
.end method

.method private static final isIdeographic(CZ)Z
    .registers 5
    .parameter "c"
    .parameter "includeNonStarters"

    .prologue
    const/4 v2, 0x0

    const/4 v1, 0x1

    .line 888
    const/16 v0, 0x2e80

    if-lt p0, v0, :cond_c

    const/16 v0, 0x2fff

    if-gt p0, v0, :cond_c

    move v0, v1

    .line 965
    :goto_b
    return v0

    .line 891
    :cond_c
    const/16 v0, 0x3000

    if-ne p0, v0, :cond_12

    move v0, v1

    .line 892
    goto :goto_b

    .line 894
    :cond_12
    const/16 v0, 0x3040

    if-lt p0, v0, :cond_23

    const/16 v0, 0x309f

    if-gt p0, v0, :cond_23

    .line 895
    if-nez p1, :cond_1f

    .line 896
    sparse-switch p0, :sswitch_data_88

    :cond_1f
    move v0, v1

    .line 916
    goto :goto_b

    :sswitch_21
    move v0, v2

    .line 913
    goto :goto_b

    .line 918
    :cond_23
    const/16 v0, 0x30a0

    if-lt p0, v0, :cond_34

    const/16 v0, 0x30ff

    if-gt p0, v0, :cond_34

    .line 919
    if-nez p1, :cond_30

    .line 920
    sparse-switch p0, :sswitch_data_ca

    :cond_30
    move v0, v1

    .line 941
    goto :goto_b

    :sswitch_32
    move v0, v2

    .line 938
    goto :goto_b

    .line 943
    :cond_34
    const/16 v0, 0x3400

    if-lt p0, v0, :cond_3e

    const/16 v0, 0x4db5

    if-gt p0, v0, :cond_3e

    move v0, v1

    .line 944
    goto :goto_b

    .line 946
    :cond_3e
    const/16 v0, 0x4e00

    if-lt p0, v0, :cond_49

    const v0, 0x9fbb

    if-gt p0, v0, :cond_49

    move v0, v1

    .line 947
    goto :goto_b

    .line 949
    :cond_49
    const v0, 0xf900

    if-lt p0, v0, :cond_55

    const v0, 0xfad9

    if-gt p0, v0, :cond_55

    move v0, v1

    .line 950
    goto :goto_b

    .line 952
    :cond_55
    const v0, 0xa000

    if-lt p0, v0, :cond_61

    const v0, 0xa48f

    if-gt p0, v0, :cond_61

    move v0, v1

    .line 953
    goto :goto_b

    .line 955
    :cond_61
    const v0, 0xa490

    if-lt p0, v0, :cond_6d

    const v0, 0xa4cf

    if-gt p0, v0, :cond_6d

    move v0, v1

    .line 956
    goto :goto_b

    .line 958
    :cond_6d
    const v0, 0xfe62

    if-lt p0, v0, :cond_79

    const v0, 0xfe66

    if-gt p0, v0, :cond_79

    move v0, v1

    .line 959
    goto :goto_b

    .line 961
    :cond_79
    const v0, 0xff10

    if-lt p0, v0, :cond_85

    const v0, 0xff19

    if-gt p0, v0, :cond_85

    move v0, v1

    .line 962
    goto :goto_b

    :cond_85
    move v0, v2

    .line 965
    goto :goto_b

    .line 896
    nop

    :sswitch_data_88
    .sparse-switch
        0x3041 -> :sswitch_21
        0x3043 -> :sswitch_21
        0x3045 -> :sswitch_21
        0x3047 -> :sswitch_21
        0x3049 -> :sswitch_21
        0x3063 -> :sswitch_21
        0x3083 -> :sswitch_21
        0x3085 -> :sswitch_21
        0x3087 -> :sswitch_21
        0x308e -> :sswitch_21
        0x3095 -> :sswitch_21
        0x3096 -> :sswitch_21
        0x309b -> :sswitch_21
        0x309c -> :sswitch_21
        0x309d -> :sswitch_21
        0x309e -> :sswitch_21
    .end sparse-switch

    .line 920
    :sswitch_data_ca
    .sparse-switch
        0x30a0 -> :sswitch_32
        0x30a1 -> :sswitch_32
        0x30a3 -> :sswitch_32
        0x30a5 -> :sswitch_32
        0x30a7 -> :sswitch_32
        0x30a9 -> :sswitch_32
        0x30c3 -> :sswitch_32
        0x30e3 -> :sswitch_32
        0x30e5 -> :sswitch_32
        0x30e7 -> :sswitch_32
        0x30ee -> :sswitch_32
        0x30f5 -> :sswitch_32
        0x30f6 -> :sswitch_32
        0x30fb -> :sswitch_32
        0x30fc -> :sswitch_32
        0x30fd -> :sswitch_32
        0x30fe -> :sswitch_32
    .end sparse-switch
.end method

.method private out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I
    .registers 63
    .parameter "text"
    .parameter "start"
    .parameter "end"
    .parameter "above"
    .parameter "below"
    .parameter "top"
    .parameter "bottom"
    .parameter "v"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "chooseht"
    .parameter "choosehtv"
    .parameter "fm"
    .parameter "tab"
    .parameter "needMultiply"
    .parameter "pstart"
    .parameter "chdirs"
    .parameter "dir"
    .parameter "easy"
    .parameter "last"
    .parameter "includepad"
    .parameter "trackpad"
    .parameter "widths"
    .parameter "widstart"
    .parameter "widoff"
    .parameter "ellipsize"
    .parameter "ellipsiswidth"
    .parameter "textwidth"
    .parameter "paint"

    .prologue
    .line 1014
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mLineCount:I

    move v13, v0

    .line 1015
    .local v13, j:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    mul-int v31, v13, v5

    .line 1016
    .local v31, off:I
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    add-int v5, v5, v31

    add-int/lit8 v32, v5, 0x1

    .line 1017
    .local v32, want:I
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLines:[I

    move-object/from16 v29, v0

    .line 1021
    .local v29, lines:[I
    move-object/from16 v0, v29

    array-length v0, v0

    move v5, v0

    move/from16 v0, v32

    move v1, v5

    if-lt v0, v1, :cond_6a

    .line 1022
    add-int/lit8 v5, v32, 0x1

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v30

    .line 1023
    .local v30, nlen:I
    move/from16 v0, v30

    new-array v0, v0, [I

    move-object/from16 v22, v0

    .line 1024
    .local v22, grow:[I
    const/4 v5, 0x0

    const/4 v6, 0x0

    move-object/from16 v0, v29

    array-length v0, v0

    move v7, v0

    move-object/from16 v0, v29

    move v1, v5

    move-object/from16 v2, v22

    move v3, v6

    move v4, v7

    invoke-static {v0, v1, v2, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 1025
    move-object/from16 v0, v22

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLines:[I

    .line 1026
    move-object/from16 v29, v22

    .line 1028
    move/from16 v0, v30

    new-array v0, v0, [Landroid/text/Layout$Directions;

    move-object/from16 v23, v0

    .line 1029
    .local v23, grow2:[Landroid/text/Layout$Directions;
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    move-object v5, v0

    const/4 v6, 0x0

    const/4 v7, 0x0

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    move-object v8, v0

    array-length v8, v8

    move-object v0, v5

    move v1, v6

    move-object/from16 v2, v23

    move v3, v7

    move v4, v8

    invoke-static {v0, v1, v2, v3, v4}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 1031
    move-object/from16 v0, v23

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    .line 1034
    .end local v22           #grow:[I
    .end local v23           #grow2:[Landroid/text/Layout$Directions;
    .end local v30           #nlen:I
    :cond_6a
    if-eqz p11, :cond_d7

    .line 1035
    move/from16 v0, p4

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 1036
    move/from16 v0, p5

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 1037
    move/from16 v0, p6

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->top:I

    .line 1038
    move/from16 v0, p7

    move-object/from16 v1, p13

    iput v0, v1, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    .line 1040
    const/16 v25, 0x0

    .local v25, i:I
    :goto_86
    move-object/from16 v0, p11

    array-length v0, v0

    move v5, v0

    move/from16 v0, v25

    move v1, v5

    if-ge v0, v1, :cond_bf

    .line 1041
    aget-object v5, p11, v25

    instance-of v5, v5, Landroid/text/style/LineHeightSpan$WithDensity;

    if-eqz v5, :cond_ad

    .line 1042
    aget-object v5, p11, v25

    check-cast v5, Landroid/text/style/LineHeightSpan$WithDensity;

    aget v9, p12, v25

    move-object/from16 v6, p1

    move/from16 v7, p2

    move/from16 v8, p3

    move/from16 v10, p8

    move-object/from16 v11, p13

    move-object/from16 v12, p29

    invoke-interface/range {v5 .. v12}, Landroid/text/style/LineHeightSpan$WithDensity;->chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;Landroid/text/TextPaint;)V

    .line 1040
    :goto_aa
    add-int/lit8 v25, v25, 0x1

    goto :goto_86

    .line 1046
    :cond_ad
    aget-object v5, p11, v25

    aget v9, p12, v25

    move-object/from16 v6, p1

    move/from16 v7, p2

    move/from16 v8, p3

    move/from16 v10, p8

    move-object/from16 v11, p13

    invoke-interface/range {v5 .. v11}, Landroid/text/style/LineHeightSpan;->chooseHeight(Ljava/lang/CharSequence;IIIILandroid/graphics/Paint$FontMetricsInt;)V

    goto :goto_aa

    .line 1050
    :cond_bf
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 p4, v0

    .line 1051
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 p5, v0

    .line 1052
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 p6, v0

    .line 1053
    move-object/from16 v0, p13

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 p7, v0

    .line 1056
    .end local v25           #i:I
    :cond_d7
    if-nez v13, :cond_e6

    .line 1057
    if-eqz p22, :cond_e2

    .line 1058
    sub-int v5, p6, p4

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mTopPadding:I

    .line 1061
    :cond_e2
    if-eqz p21, :cond_e6

    .line 1062
    move/from16 p4, p6

    .line 1065
    :cond_e6
    if-eqz p20, :cond_f5

    .line 1066
    if-eqz p22, :cond_f1

    .line 1067
    sub-int v5, p7, p5

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mBottomPadding:I

    .line 1070
    :cond_f1
    if-eqz p21, :cond_f5

    .line 1071
    move/from16 p5, p7

    .line 1079
    :cond_f5
    if-eqz p15, :cond_17e

    .line 1080
    sub-int v5, p5, p4

    int-to-float v5, v5

    const/high16 v6, 0x3f80

    sub-float v6, p9, v6

    mul-float/2addr v5, v6

    add-float v5, v5, p10

    move v0, v5

    float-to-double v0, v0

    move-wide/from16 v19, v0

    .line 1081
    .local v19, ex:D
    const-wide/16 v5, 0x0

    cmpl-double v5, v19, v5

    if-ltz v5, :cond_171

    .line 1082
    const-wide/high16 v5, 0x3fe0

    add-double v5, v5, v19

    move-wide v0, v5

    double-to-int v0, v0

    move/from16 v21, v0

    .line 1097
    .end local v19           #ex:D
    .local v21, extra:I
    :goto_113
    add-int/lit8 v5, v31, 0x0

    aput p2, v29, v5

    .line 1098
    add-int/lit8 v5, v31, 0x1

    aput p8, v29, v5

    .line 1099
    add-int/lit8 v5, v31, 0x2

    add-int v6, p5, v21

    aput v6, v29, v5

    .line 1101
    sub-int v5, p5, p4

    add-int v5, v5, v21

    add-int p8, p8, v5

    .line 1102
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    add-int v5, v5, v31

    add-int/lit8 v5, v5, 0x0

    aput p3, v29, v5

    .line 1103
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mColumns:I

    move v5, v0

    add-int v5, v5, v31

    add-int/lit8 v5, v5, 0x1

    aput p8, v29, v5

    .line 1105
    if-eqz p14, :cond_148

    .line 1106
    add-int/lit8 v5, v31, 0x0

    aget v6, v29, v5

    const/high16 v7, 0x2000

    or-int/2addr v6, v7

    aput v6, v29, v5

    .line 1109
    :cond_148
    add-int/lit8 v5, v31, 0x0

    aget v6, v29, v5

    shl-int/lit8 v7, p18, 0x1e

    or-int/2addr v6, v7

    aput v6, v29, v5

    .line 1111
    const/16 v18, 0x0

    .line 1112
    .local v18, cur:I
    const/16 v16, 0x0

    .line 1114
    .local v16, count:I
    if-nez p19, :cond_181

    .line 1115
    move/from16 v26, p2

    .local v26, k:I
    :goto_159
    move/from16 v0, v26

    move/from16 v1, p3

    if-ge v0, v1, :cond_181

    .line 1116
    sub-int v5, v26, p16

    aget-byte v5, p17, v5

    move v0, v5

    move/from16 v1, v18

    if-eq v0, v1, :cond_16e

    .line 1117
    add-int/lit8 v16, v16, 0x1

    .line 1118
    sub-int v5, v26, p16

    aget-byte v18, p17, v5

    .line 1115
    :cond_16e
    add-int/lit8 v26, v26, 0x1

    goto :goto_159

    .line 1084
    .end local v16           #count:I
    .end local v18           #cur:I
    .end local v21           #extra:I
    .end local v26           #k:I
    .restart local v19       #ex:D
    :cond_171
    move-wide/from16 v0, v19

    neg-double v0, v0

    move-wide v5, v0

    const-wide/high16 v7, 0x3fe0

    add-double/2addr v5, v7

    double-to-int v5, v5

    move v0, v5

    neg-int v0, v0

    move/from16 v21, v0

    .restart local v21       #extra:I
    goto :goto_113

    .line 1087
    .end local v19           #ex:D
    .end local v21           #extra:I
    :cond_17e
    const/16 v21, 0x0

    .restart local v21       #extra:I
    goto :goto_113

    .line 1125
    .restart local v16       #count:I
    .restart local v18       #cur:I
    :cond_181
    if-nez v16, :cond_1bb

    .line 1126
    sget-object v28, Landroid/text/StaticLayout;->DIRS_ALL_LEFT_TO_RIGHT:Landroid/text/Layout$Directions;

    .line 1153
    .local v28, linedirs:Landroid/text/Layout$Directions;
    :goto_185
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    move-object v5, v0

    aput-object v28, v5, v13

    .line 1156
    if-eqz p26, :cond_1ae

    sget-object v5, Landroid/text/TextUtils$TruncateAt;->MARQUEE:Landroid/text/TextUtils$TruncateAt;

    move-object/from16 v0, p26

    move-object v1, v5

    if-ne v0, v1, :cond_197

    if-eqz v13, :cond_1ae

    :cond_197
    move-object/from16 v5, p0

    move/from16 v6, p2

    move/from16 v7, p3

    move-object/from16 v8, p23

    move/from16 v9, p24

    move/from16 v10, p25

    move/from16 v11, p27

    move-object/from16 v12, p26

    move/from16 v14, p28

    move-object/from16 v15, p29

    .line 1157
    invoke-direct/range {v5 .. v15}, Landroid/text/StaticLayout;->calculateEllipsis(II[FIIFLandroid/text/TextUtils$TruncateAt;IFLandroid/text/TextPaint;)V

    .line 1163
    :cond_1ae
    move-object/from16 v0, p0

    iget v0, v0, Landroid/text/StaticLayout;->mLineCount:I

    move v5, v0

    add-int/lit8 v5, v5, 0x1

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mLineCount:I

    .line 1164
    return p8

    .line 1128
    .end local v28           #linedirs:Landroid/text/Layout$Directions;
    :cond_1bb
    add-int/lit8 v5, v16, 0x1

    move v0, v5

    new-array v0, v0, [S

    move-object/from16 v27, v0

    .line 1130
    .local v27, ld:[S
    const/16 v18, 0x0

    .line 1131
    const/16 v16, 0x0

    .line 1132
    move/from16 v24, p2

    .line 1134
    .local v24, here:I
    move/from16 v26, p2

    .restart local v26       #k:I
    move/from16 v17, v16

    .end local v16           #count:I
    .local v17, count:I
    :goto_1cc
    move/from16 v0, v26

    move/from16 v1, p3

    if-ge v0, v1, :cond_1ed

    .line 1135
    sub-int v5, v26, p16

    aget-byte v5, p17, v5

    move v0, v5

    move/from16 v1, v18

    if-eq v0, v1, :cond_20f

    .line 1138
    add-int/lit8 v16, v17, 0x1

    .end local v17           #count:I
    .restart local v16       #count:I
    sub-int v5, v26, v24

    int-to-short v5, v5

    aput-short v5, v27, v17

    .line 1139
    sub-int v5, v26, p16

    aget-byte v18, p17, v5

    .line 1140
    move/from16 v24, v26

    .line 1134
    :goto_1e8
    add-int/lit8 v26, v26, 0x1

    move/from16 v17, v16

    .end local v16           #count:I
    .restart local v17       #count:I
    goto :goto_1cc

    .line 1144
    :cond_1ed
    sub-int v5, p3, v24

    int-to-short v5, v5

    aput-short v5, v27, v17

    .line 1146
    const/4 v5, 0x1

    move/from16 v0, v17

    move v1, v5

    if-ne v0, v1, :cond_202

    const/4 v5, 0x0

    aget-short v5, v27, v5

    if-nez v5, :cond_202

    .line 1147
    sget-object v28, Landroid/text/StaticLayout;->DIRS_ALL_RIGHT_TO_LEFT:Landroid/text/Layout$Directions;

    .restart local v28       #linedirs:Landroid/text/Layout$Directions;
    move/from16 v16, v17

    .end local v17           #count:I
    .restart local v16       #count:I
    goto :goto_185

    .line 1149
    .end local v16           #count:I
    .end local v28           #linedirs:Landroid/text/Layout$Directions;
    .restart local v17       #count:I
    :cond_202
    new-instance v28, Landroid/text/Layout$Directions;

    move-object/from16 v0, v28

    move-object/from16 v1, v27

    invoke-direct {v0, v1}, Landroid/text/Layout$Directions;-><init>([S)V

    .restart local v28       #linedirs:Landroid/text/Layout$Directions;
    move/from16 v16, v17

    .end local v17           #count:I
    .restart local v16       #count:I
    goto/16 :goto_185

    .end local v16           #count:I
    .end local v28           #linedirs:Landroid/text/Layout$Directions;
    .restart local v17       #count:I
    :cond_20f
    move/from16 v16, v17

    .end local v17           #count:I
    .restart local v16       #count:I
    goto :goto_1e8
.end method


# virtual methods
.method generate(Ljava/lang/CharSequence;IILandroid/text/TextPaint;ILandroid/text/Layout$Alignment;FFZZZFLandroid/text/TextUtils$TruncateAt;)V
    .registers 182
    .parameter "source"
    .parameter "bufstart"
    .parameter "bufend"
    .parameter "paint"
    .parameter "outerwidth"
    .parameter "align"
    .parameter "spacingmult"
    .parameter "spacingadd"
    .parameter "includepad"
    .parameter "trackpad"
    .parameter "breakOnlyAtSpaces"
    .parameter "ellipsizedWidth"
    .parameter "where"

    .prologue
    .line 123
    const/4 v5, 0x0

    move v0, v5

    move-object/from16 v1, p0

    iput v0, v1, Landroid/text/StaticLayout;->mLineCount:I

    .line 125
    const/16 v20, 0x0

    .line 126
    .local v20, v:I
    const/high16 v5, 0x3f80

    cmpl-float v5, p7, v5

    if-nez v5, :cond_13

    const/4 v5, 0x0

    cmpl-float v5, p8, v5

    if-eqz v5, :cond_d7

    :cond_13
    const/4 v5, 0x1

    move/from16 v27, v5

    .line 128
    .local v27, needMultiply:Z
    :goto_16
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mFontMetricsInt:Landroid/graphics/Paint$FontMetricsInt;

    move-object v11, v0

    .line 129
    .local v11, fm:Landroid/graphics/Paint$FontMetricsInt;
    const/16 v24, 0x0

    .line 131
    .local v24, choosehtv:[I
    const/16 v5, 0xa

    move-object/from16 v0, p1

    move v1, v5

    move/from16 v2, p2

    move/from16 v3, p3

    invoke-static {v0, v1, v2, v3}, Landroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I

    move-result v145

    .line 132
    .local v145, end:I
    if-ltz v145, :cond_dc

    sub-int v5, v145, p2

    move/from16 v137, v5

    .line 133
    .local v137, bufsiz:I
    :goto_30
    const/16 v146, 0x1

    .line 135
    .local v146, first:Z
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mChdirs:[B

    move-object v5, v0

    if-nez v5, :cond_62

    .line 136
    add-int/lit8 v5, v137, 0x1

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealByteArraySize(I)I

    move-result v5

    new-array v5, v5, [B

    move-object v0, v5

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChdirs:[B

    .line 137
    add-int/lit8 v5, v137, 0x1

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealCharArraySize(I)I

    move-result v5

    new-array v5, v5, [C

    move-object v0, v5

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChs:[C

    .line 138
    add-int/lit8 v5, v137, 0x1

    mul-int/lit8 v5, v5, 0x2

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v5

    new-array v5, v5, [F

    move-object v0, v5

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mWidths:[F

    .line 141
    :cond_62
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mChdirs:[B

    move-object/from16 v29, v0

    .line 142
    .local v29, chdirs:[B
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mChs:[C

    move-object/from16 v140, v0

    .line 143
    .local v140, chs:[C
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWidths:[F

    move-object v10, v0

    .line 145
    .local v10, widths:[F
    const/16 v132, 0x0

    .line 146
    .local v132, alter:Landroid/text/AlteredCharSequence;
    const/4 v7, 0x0

    .line 148
    .local v7, spanned:Landroid/text/Spanned;
    move-object/from16 v0, p1

    instance-of v0, v0, Landroid/text/Spanned;

    move v5, v0

    if-eqz v5, :cond_82

    .line 149
    move-object/from16 v0, p1

    check-cast v0, Landroid/text/Spanned;

    move-object v7, v0

    .line 151
    :cond_82
    const/16 v117, 0x1

    .line 153
    .local v117, DEFAULT_DIR:I
    move/from16 v28, p2

    .local v28, start:I
    :goto_86
    move/from16 v0, v28

    move/from16 v1, p3

    if-gt v0, v1, :cond_8fb

    .line 154
    if-eqz v146, :cond_e2

    .line 155
    const/16 v146, 0x0

    .line 159
    :goto_90
    if-gez v145, :cond_f0

    .line 160
    move/from16 v145, p3

    .line 164
    :goto_94
    const/16 v147, 0x1

    .line 165
    .local v147, firstWidthLineCount:I
    move/from16 v148, p5

    .line 166
    .local v148, firstwidth:I
    move/from16 v159, p5

    .line 168
    .local v159, restwidth:I
    const/16 v23, 0x0

    .line 170
    .local v23, chooseht:[Landroid/text/style/LineHeightSpan;
    if-eqz v7, :cond_14a

    .line 173
    const-class v5, Landroid/text/style/LeadingMarginSpan;

    move-object v0, v7

    move/from16 v1, v28

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v160

    check-cast v160, [Landroid/text/style/LeadingMarginSpan;

    .line 174
    .local v160, sp:[Landroid/text/style/LeadingMarginSpan;
    const/4 v8, 0x0

    .local v8, i:I
    :goto_ad
    move-object/from16 v0, v160

    array-length v0, v0

    move v5, v0

    if-ge v8, v5, :cond_f3

    .line 175
    aget-object v155, v160, v8

    .line 176
    .local v155, lms:Landroid/text/style/LeadingMarginSpan;
    aget-object v5, v160, v8

    const/4 v6, 0x1

    invoke-interface {v5, v6}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    sub-int v148, v148, v5

    .line 177
    aget-object v5, v160, v8

    const/4 v6, 0x0

    invoke-interface {v5, v6}, Landroid/text/style/LeadingMarginSpan;->getLeadingMargin(Z)I

    move-result v5

    sub-int v159, v159, v5

    .line 178
    move-object/from16 v0, v155

    instance-of v0, v0, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    move v5, v0

    if-eqz v5, :cond_d4

    .line 179
    check-cast v155, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;

    .end local v155           #lms:Landroid/text/style/LeadingMarginSpan;
    invoke-interface/range {v155 .. v155}, Landroid/text/style/LeadingMarginSpan$LeadingMarginSpan2;->getLeadingMarginLineCount()I

    move-result v147

    .line 174
    :cond_d4
    add-int/lit8 v8, v8, 0x1

    goto :goto_ad

    .line 126
    .end local v7           #spanned:Landroid/text/Spanned;
    .end local v8           #i:I
    .end local v10           #widths:[F
    .end local v11           #fm:Landroid/graphics/Paint$FontMetricsInt;
    .end local v23           #chooseht:[Landroid/text/style/LineHeightSpan;
    .end local v24           #choosehtv:[I
    .end local v27           #needMultiply:Z
    .end local v28           #start:I
    .end local v29           #chdirs:[B
    .end local v117           #DEFAULT_DIR:I
    .end local v132           #alter:Landroid/text/AlteredCharSequence;
    .end local v137           #bufsiz:I
    .end local v140           #chs:[C
    .end local v145           #end:I
    .end local v146           #first:Z
    .end local v147           #firstWidthLineCount:I
    .end local v148           #firstwidth:I
    .end local v159           #restwidth:I
    .end local v160           #sp:[Landroid/text/style/LeadingMarginSpan;
    :cond_d7
    const/4 v5, 0x0

    move/from16 v27, v5

    goto/16 :goto_16

    .line 132
    .restart local v11       #fm:Landroid/graphics/Paint$FontMetricsInt;
    .restart local v24       #choosehtv:[I
    .restart local v27       #needMultiply:Z
    .restart local v145       #end:I
    :cond_dc
    sub-int v5, p3, p2

    move/from16 v137, v5

    goto/16 :goto_30

    .line 157
    .restart local v7       #spanned:Landroid/text/Spanned;
    .restart local v10       #widths:[F
    .restart local v28       #start:I
    .restart local v29       #chdirs:[B
    .restart local v117       #DEFAULT_DIR:I
    .restart local v132       #alter:Landroid/text/AlteredCharSequence;
    .restart local v137       #bufsiz:I
    .restart local v140       #chs:[C
    .restart local v146       #first:Z
    :cond_e2
    const/16 v5, 0xa

    move-object/from16 v0, p1

    move v1, v5

    move/from16 v2, v28

    move/from16 v3, p3

    invoke-static {v0, v1, v2, v3}, Landroid/text/TextUtils;->indexOf(Ljava/lang/CharSequence;CII)I

    move-result v145

    goto :goto_90

    .line 162
    :cond_f0
    add-int/lit8 v145, v145, 0x1

    goto :goto_94

    .line 183
    .restart local v8       #i:I
    .restart local v23       #chooseht:[Landroid/text/style/LineHeightSpan;
    .restart local v147       #firstWidthLineCount:I
    .restart local v148       #firstwidth:I
    .restart local v159       #restwidth:I
    .restart local v160       #sp:[Landroid/text/style/LeadingMarginSpan;
    :cond_f3
    const-class v5, Landroid/text/style/LineHeightSpan;

    move-object v0, v7

    move/from16 v1, v28

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v23

    .end local v23           #chooseht:[Landroid/text/style/LineHeightSpan;
    check-cast v23, [Landroid/text/style/LineHeightSpan;

    .line 185
    .restart local v23       #chooseht:[Landroid/text/style/LineHeightSpan;
    move-object/from16 v0, v23

    array-length v0, v0

    move v5, v0

    if-eqz v5, :cond_14a

    .line 186
    if-eqz v24, :cond_113

    move-object/from16 v0, v24

    array-length v0, v0

    move v5, v0

    move-object/from16 v0, v23

    array-length v0, v0

    move v6, v0

    if-ge v5, v6, :cond_120

    .line 188
    :cond_113
    move-object/from16 v0, v23

    array-length v0, v0

    move v5, v0

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v5

    move v0, v5

    new-array v0, v0, [I

    move-object/from16 v24, v0

    .line 192
    :cond_120
    const/4 v8, 0x0

    :goto_121
    move-object/from16 v0, v23

    array-length v0, v0

    move v5, v0

    if-ge v8, v5, :cond_14a

    .line 193
    aget-object v5, v23, v8

    invoke-interface {v7, v5}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I

    move-result v157

    .line 195
    .local v157, o:I
    move/from16 v0, v157

    move/from16 v1, v28

    if-ge v0, v1, :cond_147

    .line 199
    move-object/from16 v0, p0

    move/from16 v1, v157

    invoke-virtual {v0, v1}, Landroid/text/StaticLayout;->getLineForOffset(I)I

    move-result v5

    move-object/from16 v0, p0

    move v1, v5

    invoke-virtual {v0, v1}, Landroid/text/StaticLayout;->getLineTop(I)I

    move-result v5

    aput v5, v24, v8

    .line 192
    :goto_144
    add-int/lit8 v8, v8, 0x1

    goto :goto_121

    .line 203
    :cond_147
    aput v20, v24, v8

    goto :goto_144

    .line 209
    .end local v8           #i:I
    .end local v157           #o:I
    .end local v160           #sp:[Landroid/text/style/LeadingMarginSpan;
    :cond_14a
    sub-int v5, v145, v28

    move-object/from16 v0, v29

    array-length v0, v0

    move v6, v0

    if-le v5, v6, :cond_163

    .line 210
    sub-int v5, v145, v28

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealByteArraySize(I)I

    move-result v5

    move v0, v5

    new-array v0, v0, [B

    move-object/from16 v29, v0

    .line 211
    move-object/from16 v0, v29

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChdirs:[B

    .line 213
    :cond_163
    sub-int v5, v145, v28

    move-object/from16 v0, v140

    array-length v0, v0

    move v6, v0

    if-le v5, v6, :cond_17c

    .line 214
    sub-int v5, v145, v28

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealCharArraySize(I)I

    move-result v5

    move v0, v5

    new-array v0, v0, [C

    move-object/from16 v140, v0

    .line 215
    move-object/from16 v0, v140

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mChs:[C

    .line 217
    :cond_17c
    sub-int v5, v145, v28

    mul-int/lit8 v5, v5, 0x2

    array-length v6, v10

    if-le v5, v6, :cond_192

    .line 218
    sub-int v5, v145, v28

    mul-int/lit8 v5, v5, 0x2

    invoke-static {v5}, Lcom/android/internal/util/ArrayUtils;->idealIntArraySize(I)I

    move-result v5

    new-array v10, v5, [F

    .line 219
    move-object v0, v10

    move-object/from16 v1, p0

    iput-object v0, v1, Landroid/text/StaticLayout;->mWidths:[F

    .line 222
    :cond_192
    const/4 v5, 0x0

    move-object/from16 v0, p1

    move/from16 v1, v28

    move/from16 v2, v145

    move-object/from16 v3, v140

    move v4, v5

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/TextUtils;->getChars(Ljava/lang/CharSequence;II[CI)V

    .line 223
    sub-int v156, v145, v28

    .line 225
    .local v156, n:I
    const/16 v31, 0x1

    .line 226
    .local v31, easy:Z
    const/16 v133, 0x0

    .line 227
    .local v133, altered:Z
    move/from16 v30, v117

    .line 229
    .local v30, dir:I
    const/4 v8, 0x0

    .restart local v8       #i:I
    :goto_1a8
    move v0, v8

    move/from16 v1, v156

    if-ge v0, v1, :cond_1b5

    .line 230
    aget-char v5, v140, v8

    const/16 v6, 0x590

    if-lt v5, v6, :cond_1f4

    .line 231
    const/16 v31, 0x0

    .line 244
    :cond_1b5
    if-nez v31, :cond_494

    .line 245
    sub-int v5, v145, v28

    move-object/from16 v0, v140

    move-object/from16 v1, v29

    move v2, v5

    invoke-static {v0, v1, v2}, Landroid/text/AndroidCharacter;->getDirectionalities([C[BI)V

    .line 252
    const/16 v30, 0x1

    .line 253
    move/from16 v153, v28

    .local v153, j:I
    :goto_1c5
    move/from16 v0, v153

    move/from16 v1, v145

    if-ge v0, v1, :cond_1d7

    .line 254
    sub-int v5, v153, v28

    aget-byte v142, v29, v5

    .line 256
    .local v142, d:I
    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_1f7

    .line 257
    const/16 v30, -0x1

    .line 270
    .end local v142           #d:I
    :cond_1d7
    const/4 v5, 0x1

    move/from16 v0, v30

    move v1, v5

    if-ne v0, v1, :cond_1fa

    const/4 v5, 0x0

    move/from16 v129, v5

    .line 277
    .local v129, SOR:B
    :goto_1e0
    const/16 v153, 0x0

    :goto_1e2
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_206

    .line 278
    aget-byte v5, v29, v153

    const/4 v6, 0x6

    if-ne v5, v6, :cond_1f1

    .line 279
    if-nez v153, :cond_1fe

    .line 280
    aput-byte v129, v29, v153

    .line 277
    :cond_1f1
    :goto_1f1
    add-int/lit8 v153, v153, 0x1

    goto :goto_1e2

    .line 229
    .end local v129           #SOR:B
    .end local v153           #j:I
    :cond_1f4
    add-int/lit8 v8, v8, 0x1

    goto :goto_1a8

    .line 253
    .restart local v142       #d:I
    .restart local v153       #j:I
    :cond_1f7
    add-int/lit8 v153, v153, 0x1

    goto :goto_1c5

    .line 270
    .end local v142           #d:I
    :cond_1fa
    const/4 v5, 0x1

    move/from16 v129, v5

    goto :goto_1e0

    .line 282
    .restart local v129       #SOR:B
    :cond_1fe
    const/4 v5, 0x1

    sub-int v5, v153, v5

    aget-byte v5, v29, v5

    aput-byte v5, v29, v153

    goto :goto_1f1

    .line 289
    :cond_206
    move/from16 v141, v129

    .line 290
    .local v141, cur:B
    const/16 v153, 0x0

    :goto_20a
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_235

    .line 291
    aget-byte v142, v29, v153

    .line 293
    .local v142, d:B
    if-eqz v142, :cond_220

    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_220

    const/4 v5, 0x2

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_225

    .line 296
    :cond_220
    move/from16 v141, v142

    .line 290
    :cond_222
    :goto_222
    add-int/lit8 v153, v153, 0x1

    goto :goto_20a

    .line 297
    :cond_225
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_222

    .line 298
    const/4 v5, 0x2

    move/from16 v0, v141

    move v1, v5

    if-ne v0, v1, :cond_222

    .line 300
    const/4 v5, 0x6

    aput-byte v5, v29, v153

    goto :goto_222

    .line 307
    .end local v142           #d:B
    :cond_235
    const/16 v153, 0x0

    :goto_237
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_248

    .line 308
    aget-byte v5, v29, v153

    const/4 v6, 0x2

    if-ne v5, v6, :cond_245

    .line 309
    const/4 v5, 0x1

    aput-byte v5, v29, v153

    .line 307
    :cond_245
    add-int/lit8 v153, v153, 0x1

    goto :goto_237

    .line 315
    :cond_248
    const/16 v153, 0x1

    :goto_24a
    const/4 v5, 0x1

    sub-int v5, v156, v5

    move/from16 v0, v153

    move v1, v5

    if-ge v0, v1, :cond_2dd

    .line 316
    aget-byte v142, v29, v153

    .line 317
    .restart local v142       #d:B
    const/4 v5, 0x1

    sub-int v5, v153, v5

    aget-byte v158, v29, v5

    .line 318
    .local v158, prev:B
    add-int/lit8 v5, v153, 0x1

    aget-byte v9, v29, v5

    .line 320
    .local v9, next:B
    aget-char v138, v140, v153

    .line 321
    .local v138, c:C
    add-int/lit8 v5, v153, 0x1

    aget-char v139, v140, v5

    .line 323
    .local v139, cc:C
    const/4 v5, 0x4

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_278

    .line 324
    const/4 v5, 0x3

    move/from16 v0, v158

    move v1, v5

    if-ne v0, v1, :cond_275

    const/4 v5, 0x3

    if-ne v9, v5, :cond_275

    .line 326
    const/4 v5, 0x3

    aput-byte v5, v29, v153

    .line 315
    :cond_275
    :goto_275
    add-int/lit8 v153, v153, 0x1

    goto :goto_24a

    .line 327
    :cond_278
    const/4 v5, 0x7

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_2ac

    .line 328
    const/4 v5, 0x3

    move/from16 v0, v158

    move v1, v5

    if-ne v0, v1, :cond_28a

    const/4 v5, 0x3

    if-ne v9, v5, :cond_28a

    .line 330
    const/4 v5, 0x3

    aput-byte v5, v29, v153

    .line 331
    :cond_28a
    const/4 v5, 0x6

    move/from16 v0, v158

    move v1, v5

    if-ne v0, v1, :cond_296

    const/4 v5, 0x6

    if-ne v9, v5, :cond_296

    .line 333
    const/4 v5, 0x6

    aput-byte v5, v29, v153

    .line 335
    :cond_296
    const/16 v5, 0x20

    move/from16 v0, v139

    move v1, v5

    if-ne v0, v1, :cond_275

    const/4 v5, 0x3

    move/from16 v0, v158

    move v1, v5

    if-eq v0, v1, :cond_2a9

    const/4 v5, 0x6

    move/from16 v0, v158

    move v1, v5

    if-ne v0, v1, :cond_275

    .line 338
    :cond_2a9
    aput-byte v129, v29, v153

    goto :goto_275

    .line 341
    :cond_2ac
    const/16 v5, 0x20

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_275

    move/from16 v0, v158

    move/from16 v1, v129

    if-eq v0, v1, :cond_275

    const/4 v5, 0x3

    if-eq v9, v5, :cond_2bf

    const/4 v5, 0x6

    if-ne v9, v5, :cond_275

    .line 344
    :cond_2bf
    aput-byte v129, v29, v153

    .line 345
    add-int/lit8 v154, v153, 0x1

    .local v154, k:I
    :goto_2c3
    move/from16 v0, v154

    move/from16 v1, v156

    if-ge v0, v1, :cond_275

    .line 346
    aget-byte v5, v29, v154

    if-nez v5, :cond_2d1

    .line 347
    const/4 v5, 0x0

    aput-byte v5, v29, v153

    goto :goto_275

    .line 350
    :cond_2d1
    aget-byte v5, v29, v154

    const/4 v6, 0x1

    if-ne v5, v6, :cond_2da

    .line 351
    const/4 v5, 0x1

    aput-byte v5, v29, v153

    goto :goto_275

    .line 345
    :cond_2da
    add-int/lit8 v154, v154, 0x1

    goto :goto_2c3

    .line 361
    .end local v9           #next:B
    .end local v138           #c:C
    .end local v139           #cc:C
    .end local v142           #d:B
    .end local v154           #k:I
    .end local v158           #prev:B
    :cond_2dd
    const/16 v131, 0x0

    .line 362
    .local v131, adjacent:Z
    const/16 v153, 0x0

    :goto_2e1
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_303

    .line 363
    aget-byte v142, v29, v153

    .line 365
    .restart local v142       #d:B
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_2f4

    .line 366
    const/16 v131, 0x1

    .line 362
    :goto_2f1
    add-int/lit8 v153, v153, 0x1

    goto :goto_2e1

    .line 367
    :cond_2f4
    const/4 v5, 0x5

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_300

    if-eqz v131, :cond_300

    .line 368
    const/4 v5, 0x3

    aput-byte v5, v29, v153

    goto :goto_2f1

    .line 370
    :cond_300
    const/16 v131, 0x0

    goto :goto_2f1

    .line 377
    .end local v142           #d:B
    :cond_303
    const/16 v131, 0x0

    .line 378
    const/4 v5, 0x1

    sub-int v153, v156, v5

    :goto_308
    if-ltz v153, :cond_349

    .line 379
    aget-byte v142, v29, v153

    .line 381
    .restart local v142       #d:B
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_317

    .line 382
    const/16 v131, 0x1

    .line 378
    :cond_314
    :goto_314
    add-int/lit8 v153, v153, -0x1

    goto :goto_308

    .line 383
    :cond_317
    const/4 v5, 0x5

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_328

    .line 384
    if-eqz v131, :cond_323

    .line 385
    const/4 v5, 0x3

    aput-byte v5, v29, v153

    goto :goto_314

    .line 387
    :cond_323
    const/16 v5, 0xd

    aput-byte v5, v29, v153

    goto :goto_314

    .line 390
    :cond_328
    const/16 v131, 0x0

    .line 392
    const/4 v5, 0x4

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_344

    const/4 v5, 0x7

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_344

    const/16 v5, 0xa

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_344

    const/16 v5, 0xb

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_314

    .line 396
    :cond_344
    const/16 v5, 0xd

    aput-byte v5, v29, v153

    goto :goto_314

    .line 403
    .end local v142           #d:B
    :cond_349
    move/from16 v141, v129

    .line 404
    const/16 v153, 0x0

    :goto_34d
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_371

    .line 405
    aget-byte v142, v29, v153

    .line 407
    .restart local v142       #d:B
    move/from16 v0, v142

    move/from16 v1, v129

    if-eq v0, v1, :cond_363

    if-eqz v142, :cond_363

    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_365

    .line 410
    :cond_363
    move/from16 v141, v142

    .line 412
    :cond_365
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_36e

    .line 413
    const/4 v5, 0x0

    aput-byte v5, v29, v153

    .line 404
    :cond_36e
    add-int/lit8 v153, v153, 0x1

    goto :goto_34d

    .line 419
    .end local v142           #d:B
    :cond_371
    move/from16 v141, v129

    .line 420
    const/16 v153, 0x0

    :goto_375
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_3d9

    .line 421
    aget-byte v142, v29, v153

    .line 423
    .restart local v142       #d:B
    if-eqz v142, :cond_385

    const/4 v5, 0x1

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_38a

    .line 425
    :cond_385
    move/from16 v141, v142

    .line 420
    :goto_387
    add-int/lit8 v153, v153, 0x1

    goto :goto_375

    .line 426
    :cond_38a
    const/4 v5, 0x3

    move/from16 v0, v142

    move v1, v5

    if-eq v0, v1, :cond_396

    const/4 v5, 0x6

    move/from16 v0, v142

    move v1, v5

    if-ne v0, v1, :cond_399

    .line 428
    :cond_396
    const/16 v141, 0x0

    goto :goto_387

    .line 430
    :cond_399
    move/from16 v143, v129

    .line 433
    .local v143, dd:B
    add-int/lit8 v154, v153, 0x1

    .restart local v154       #k:I
    :goto_39d
    move/from16 v0, v154

    move/from16 v1, v156

    if-ge v0, v1, :cond_3ad

    .line 434
    aget-byte v143, v29, v154

    .line 436
    if-eqz v143, :cond_3ad

    const/4 v5, 0x1

    move/from16 v0, v143

    move v1, v5

    if-ne v0, v1, :cond_3c0

    .line 447
    :cond_3ad
    :goto_3ad
    move/from16 v167, v153

    .local v167, y:I
    :goto_3af
    move/from16 v0, v167

    move/from16 v1, v154

    if-ge v0, v1, :cond_3d5

    .line 448
    move/from16 v0, v143

    move/from16 v1, v141

    if-ne v0, v1, :cond_3d2

    .line 449
    aput-byte v141, v29, v167

    .line 447
    :goto_3bd
    add-int/lit8 v167, v167, 0x1

    goto :goto_3af

    .line 440
    .end local v167           #y:I
    :cond_3c0
    const/4 v5, 0x3

    move/from16 v0, v143

    move v1, v5

    if-eq v0, v1, :cond_3cc

    const/4 v5, 0x6

    move/from16 v0, v143

    move v1, v5

    if-ne v0, v1, :cond_3cf

    .line 442
    :cond_3cc
    const/16 v143, 0x0

    .line 443
    goto :goto_3ad

    .line 433
    :cond_3cf
    add-int/lit8 v154, v154, 0x1

    goto :goto_39d

    .line 451
    .restart local v167       #y:I
    :cond_3d2
    aput-byte v129, v29, v167

    goto :goto_3bd

    .line 454
    :cond_3d5
    const/4 v5, 0x1

    sub-int v153, v154, v5

    goto :goto_387

    .line 464
    .end local v142           #d:B
    .end local v143           #dd:B
    .end local v154           #k:I
    .end local v167           #y:I
    :cond_3d9
    const/16 v153, 0x0

    :goto_3db
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_3ff

    .line 465
    aget-char v138, v140, v153

    .line 467
    .restart local v138       #c:C
    const/16 v5, 0x9

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_3fa

    const v5, 0xd800

    move/from16 v0, v138

    move v1, v5

    if-lt v0, v1, :cond_3fc

    const v5, 0xdfff

    move/from16 v0, v138

    move v1, v5

    if-gt v0, v1, :cond_3fc

    .line 468
    :cond_3fa
    aput-byte v129, v29, v153

    .line 464
    :cond_3fc
    add-int/lit8 v153, v153, 0x1

    goto :goto_3db

    .line 473
    .end local v138           #c:C
    :cond_3ff
    const/16 v153, 0x0

    :goto_401
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_413

    .line 474
    aget-char v5, v140, v153

    packed-switch v5, :pswitch_data_96a

    .line 473
    :goto_40c
    add-int/lit8 v153, v153, 0x1

    goto :goto_401

    .line 488
    :pswitch_40f
    const/4 v5, 0x0

    aput-byte v5, v29, v153

    goto :goto_40c

    .line 499
    :cond_413
    move-object/from16 v0, p1

    instance-of v0, v0, Landroid/text/Spanned;

    move v5, v0

    if-eqz v5, :cond_465

    .line 500
    move-object/from16 v0, p1

    check-cast v0, Landroid/text/Spanned;

    move-object/from16 v160, v0

    .line 501
    .local v160, sp:Landroid/text/Spanned;
    const-class v5, Landroid/text/style/ReplacementSpan;

    move-object/from16 v0, v160

    move/from16 v1, v28

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->getSpans(IILjava/lang/Class;)[Ljava/lang/Object;

    move-result-object v161

    check-cast v161, [Landroid/text/style/ReplacementSpan;

    .line 503
    .local v161, spans:[Landroid/text/style/ReplacementSpan;
    const/16 v167, 0x0

    .restart local v167       #y:I
    :goto_431
    move-object/from16 v0, v161

    array-length v0, v0

    move v5, v0

    move/from16 v0, v167

    move v1, v5

    if-ge v0, v1, :cond_465

    .line 504
    aget-object v5, v161, v167

    move-object/from16 v0, v160

    move-object v1, v5

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanStart(Ljava/lang/Object;)I

    move-result v130

    .line 505
    .local v130, a:I
    aget-object v5, v161, v167

    move-object/from16 v0, v160

    move-object v1, v5

    invoke-interface {v0, v1}, Landroid/text/Spanned;->getSpanEnd(Ljava/lang/Object;)I

    move-result v134

    .line 507
    .local v134, b:I
    move/from16 v166, v130

    .local v166, x:I
    :goto_44e
    move/from16 v0, v166

    move/from16 v1, v134

    if-ge v0, v1, :cond_462

    .line 508
    sub-int v5, v166, v28

    aput-byte v129, v29, v5

    .line 509
    sub-int v5, v166, v28

    const v6, 0xfffc

    aput-char v6, v140, v5

    .line 507
    add-int/lit8 v166, v166, 0x1

    goto :goto_44e

    .line 503
    :cond_462
    add-int/lit8 v167, v167, 0x1

    goto :goto_431

    .line 523
    .end local v130           #a:I
    .end local v134           #b:I
    .end local v160           #sp:Landroid/text/Spanned;
    .end local v161           #spans:[Landroid/text/style/ReplacementSpan;
    .end local v166           #x:I
    .end local v167           #y:I
    :cond_465
    const/4 v8, 0x0

    :goto_466
    move v0, v8

    move/from16 v1, v156

    if-ge v0, v1, :cond_494

    .line 524
    aget-byte v5, v29, v8

    const/4 v6, 0x1

    if-ne v5, v6, :cond_48e

    .line 527
    move/from16 v153, v8

    :goto_472
    move/from16 v0, v153

    move/from16 v1, v156

    if-ge v0, v1, :cond_47d

    .line 528
    aget-byte v5, v29, v153

    const/4 v6, 0x1

    if-eq v5, v6, :cond_491

    .line 533
    :cond_47d
    sub-int v5, v153, v8

    move-object/from16 v0, v140

    move v1, v8

    move v2, v5

    invoke-static {v0, v1, v2}, Landroid/text/AndroidCharacter;->mirror([CII)Z

    move-result v5

    if-eqz v5, :cond_48b

    .line 534
    const/16 v133, 0x1

    .line 536
    :cond_48b
    const/4 v5, 0x1

    sub-int v8, v153, v5

    .line 523
    :cond_48e
    add-int/lit8 v8, v8, 0x1

    goto :goto_466

    .line 527
    :cond_491
    add-int/lit8 v153, v153, 0x1

    goto :goto_472

    .line 543
    .end local v129           #SOR:B
    .end local v131           #adjacent:Z
    .end local v141           #cur:B
    .end local v153           #j:I
    :cond_494
    if-eqz v133, :cond_603

    .line 544
    if-nez v132, :cond_5f6

    .line 545
    move-object/from16 v0, p1

    move-object/from16 v1, v140

    move/from16 v2, v28

    move/from16 v3, v145

    invoke-static {v0, v1, v2, v3}, Landroid/text/AlteredCharSequence;->make(Ljava/lang/CharSequence;[CII)Landroid/text/AlteredCharSequence;

    move-result-object v132

    .line 549
    :goto_4a4
    move-object/from16 v162, v132

    .line 554
    .local v162, sub:Ljava/lang/CharSequence;
    :goto_4a6
    move/from16 v165, v148

    .line 556
    .local v165, width:I
    const/16 v98, 0x0

    .line 557
    .local v98, w:F
    move/from16 v14, v28

    .line 559
    .local v14, here:I
    move/from16 v15, v28

    .line 560
    .local v15, ok:I
    move/from16 v40, v98

    .line 561
    .local v40, okwidth:F
    const/16 v16, 0x0

    .local v16, okascent:I
    const/16 v17, 0x0

    .local v17, okdescent:I
    const/16 v18, 0x0

    .local v18, oktop:I
    const/16 v19, 0x0

    .line 563
    .local v19, okbottom:I
    move/from16 v44, v28

    .line 564
    .local v44, fit:I
    move/from16 v69, v98

    .line 565
    .local v69, fitwidth:F
    const/16 v45, 0x0

    .local v45, fitascent:I
    const/16 v46, 0x0

    .local v46, fitdescent:I
    const/16 v47, 0x0

    .local v47, fittop:I
    const/16 v48, 0x0

    .line 567
    .local v48, fitbottom:I
    const/16 v26, 0x0

    .line 570
    .local v26, tab:Z
    move/from16 v8, v28

    :goto_4c8
    move v0, v8

    move/from16 v1, v145

    if-ge v0, v1, :cond_887

    .line 571
    if-nez v7, :cond_607

    .line 572
    move/from16 v9, v145

    .line 578
    .local v9, next:I
    :goto_4d1
    if-nez v7, :cond_614

    .line 579
    move-object/from16 v0, p4

    move-object/from16 v1, v162

    move v2, v8

    move v3, v9

    move-object v4, v10

    invoke-virtual {v0, v1, v2, v3, v4}, Landroid/text/TextPaint;->getTextWidths(Ljava/lang/CharSequence;II[F)I

    .line 580
    const/4 v5, 0x0

    sub-int v6, v145, v28

    sub-int v12, v8, v28

    add-int/2addr v6, v12

    sub-int v12, v9, v8

    invoke-static {v10, v5, v10, v6, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 583
    move-object/from16 v0, p4

    move-object v1, v11

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I

    .line 602
    :goto_4ee
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v152, v0

    .line 603
    .local v152, fmtop:I
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v150, v0

    .line 604
    .local v150, fmbottom:I
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v149, v0

    .line 605
    .local v149, fmascent:I
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v151, v0

    .line 617
    .local v151, fmdescent:I
    move/from16 v153, v8

    .restart local v153       #j:I
    :goto_504
    move/from16 v0, v153

    move v1, v9

    if-ge v0, v1, :cond_884

    .line 618
    sub-int v5, v153, v28

    aget-char v138, v140, v5

    .line 619
    .restart local v138       #c:C
    move/from16 v135, v98

    .line 621
    .local v135, before:F
    const/16 v5, 0xa

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_66e

    .line 661
    :goto_516
    move/from16 v0, v165

    int-to-float v0, v0

    move v5, v0

    cmpg-float v5, v98, v5

    if-gtz v5, :cond_703

    .line 662
    move/from16 v69, v98

    .line 663
    add-int/lit8 v44, v153, 0x1

    .line 665
    move/from16 v0, v152

    move/from16 v1, v47

    if-ge v0, v1, :cond_52a

    .line 666
    move/from16 v47, v152

    .line 667
    :cond_52a
    move/from16 v0, v149

    move/from16 v1, v45

    if-ge v0, v1, :cond_532

    .line 668
    move/from16 v45, v149

    .line 669
    :cond_532
    move/from16 v0, v151

    move/from16 v1, v46

    if-le v0, v1, :cond_53a

    .line 670
    move/from16 v46, v151

    .line 671
    :cond_53a
    move/from16 v0, v150

    move/from16 v1, v48

    if-le v0, v1, :cond_542

    .line 672
    move/from16 v48, v150

    .line 690
    :cond_542
    const/16 v5, 0x20

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_5ce

    const/16 v5, 0x9

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_5ce

    const/16 v5, 0x2e

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_56c

    const/16 v5, 0x2c

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_56c

    const/16 v5, 0x3a

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_56c

    const/16 v5, 0x3b

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_58e

    :cond_56c
    const/4 v5, 0x1

    sub-int v5, v153, v5

    if-lt v5, v14, :cond_57e

    const/4 v5, 0x1

    sub-int v5, v153, v5

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    invoke-static {v5}, Ljava/lang/Character;->isDigit(C)Z

    move-result v5

    if-nez v5, :cond_58e

    :cond_57e
    add-int/lit8 v5, v153, 0x1

    if-ge v5, v9, :cond_5ce

    add-int/lit8 v5, v153, 0x1

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    invoke-static {v5}, Ljava/lang/Character;->isDigit(C)Z

    move-result v5

    if-eqz v5, :cond_5ce

    :cond_58e
    const/16 v5, 0x2f

    move/from16 v0, v138

    move v1, v5

    if-eq v0, v1, :cond_59c

    const/16 v5, 0x2d

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_5ac

    :cond_59c
    add-int/lit8 v5, v153, 0x1

    if-ge v5, v9, :cond_5ce

    add-int/lit8 v5, v153, 0x1

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    invoke-static {v5}, Ljava/lang/Character;->isDigit(C)Z

    move-result v5

    if-eqz v5, :cond_5ce

    :cond_5ac
    const/16 v5, 0x2e80

    move/from16 v0, v138

    move v1, v5

    if-lt v0, v1, :cond_5f2

    const/4 v5, 0x1

    move/from16 v0, v138

    move v1, v5

    invoke-static {v0, v1}, Landroid/text/StaticLayout;->isIdeographic(CZ)Z

    move-result v5

    if-eqz v5, :cond_5f2

    add-int/lit8 v5, v153, 0x1

    if-ge v5, v9, :cond_5f2

    add-int/lit8 v5, v153, 0x1

    sub-int v5, v5, v28

    aget-char v5, v140, v5

    const/4 v6, 0x0

    invoke-static {v5, v6}, Landroid/text/StaticLayout;->isIdeographic(CZ)Z

    move-result v5

    if-eqz v5, :cond_5f2

    .line 698
    :cond_5ce
    move/from16 v40, v98

    .line 699
    add-int/lit8 v15, v153, 0x1

    .line 701
    move/from16 v0, v47

    move/from16 v1, v18

    if-ge v0, v1, :cond_5da

    .line 702
    move/from16 v18, v47

    .line 703
    :cond_5da
    move/from16 v0, v45

    move/from16 v1, v16

    if-ge v0, v1, :cond_5e2

    .line 704
    move/from16 v16, v45

    .line 705
    :cond_5e2
    move/from16 v0, v46

    move/from16 v1, v17

    if-le v0, v1, :cond_5ea

    .line 706
    move/from16 v17, v46

    .line 707
    :cond_5ea
    move/from16 v0, v48

    move/from16 v1, v19

    if-le v0, v1, :cond_5f2

    .line 708
    move/from16 v19, v48

    .line 617
    :cond_5f2
    :goto_5f2
    add-int/lit8 v153, v153, 0x1

    goto/16 :goto_504

    .line 547
    .end local v9           #next:I
    .end local v14           #here:I
    .end local v15           #ok:I
    .end local v16           #okascent:I
    .end local v17           #okdescent:I
    .end local v18           #oktop:I
    .end local v19           #okbottom:I
    .end local v26           #tab:Z
    .end local v40           #okwidth:F
    .end local v44           #fit:I
    .end local v45           #fitascent:I
    .end local v46           #fitdescent:I
    .end local v47           #fittop:I
    .end local v48           #fitbottom:I
    .end local v69           #fitwidth:F
    .end local v98           #w:F
    .end local v135           #before:F
    .end local v138           #c:C
    .end local v149           #fmascent:I
    .end local v150           #fmbottom:I
    .end local v151           #fmdescent:I
    .end local v152           #fmtop:I
    .end local v153           #j:I
    .end local v162           #sub:Ljava/lang/CharSequence;
    .end local v165           #width:I
    :cond_5f6
    move-object/from16 v0, v132

    move-object/from16 v1, v140

    move/from16 v2, v28

    move/from16 v3, v145

    invoke-virtual {v0, v1, v2, v3}, Landroid/text/AlteredCharSequence;->update([CII)V

    goto/16 :goto_4a4

    .line 551
    :cond_603
    move-object/from16 v162, p1

    .restart local v162       #sub:Ljava/lang/CharSequence;
    goto/16 :goto_4a6

    .line 574
    .restart local v14       #here:I
    .restart local v15       #ok:I
    .restart local v16       #okascent:I
    .restart local v17       #okdescent:I
    .restart local v18       #oktop:I
    .restart local v19       #okbottom:I
    .restart local v26       #tab:Z
    .restart local v40       #okwidth:F
    .restart local v44       #fit:I
    .restart local v45       #fitascent:I
    .restart local v46       #fitdescent:I
    .restart local v47       #fittop:I
    .restart local v48       #fitbottom:I
    .restart local v69       #fitwidth:F
    .restart local v98       #w:F
    .restart local v165       #width:I
    :cond_607
    const-class v5, Landroid/text/style/MetricAffectingSpan;

    move-object v0, v7

    move v1, v8

    move/from16 v2, v145

    move-object v3, v5

    invoke-interface {v0, v1, v2, v3}, Landroid/text/Spanned;->nextSpanTransition(IILjava/lang/Class;)I

    move-result v9

    .restart local v9       #next:I
    goto/16 :goto_4d1

    .line 585
    :cond_614
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v5, v0

    const/4 v6, 0x0

    iput v6, v5, Landroid/text/TextPaint;->baselineShift:I

    .line 587
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    move-object/from16 v5, p4

    invoke-static/range {v5 .. v11}, Landroid/text/Styled;->getTextWidths(Landroid/text/TextPaint;Landroid/text/TextPaint;Landroid/text/Spanned;II[FLandroid/graphics/Paint$FontMetricsInt;)I

    .line 590
    const/4 v5, 0x0

    sub-int v6, v145, v28

    sub-int v12, v8, v28

    add-int/2addr v6, v12

    sub-int v12, v9, v8

    invoke-static {v10, v5, v10, v6, v12}, Ljava/lang/System;->arraycopy(Ljava/lang/Object;ILjava/lang/Object;II)V

    .line 593
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v5, v0

    iget v5, v5, Landroid/text/TextPaint;->baselineShift:I

    if-gez v5, :cond_654

    .line 594
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    .line 595
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->top:I

    goto/16 :goto_4ee

    .line 597
    :cond_654
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    .line 598
    iget v5, v11, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object v6, v0

    iget v6, v6, Landroid/text/TextPaint;->baselineShift:I

    add-int/2addr v5, v6

    iput v5, v11, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    goto/16 :goto_4ee

    .line 623
    .restart local v135       #before:F
    .restart local v138       #c:C
    .restart local v149       #fmascent:I
    .restart local v150       #fmbottom:I
    .restart local v151       #fmdescent:I
    .restart local v152       #fmtop:I
    .restart local v153       #j:I
    :cond_66e
    const/16 v5, 0x9

    move/from16 v0, v138

    move v1, v5

    if-ne v0, v1, :cond_687

    .line 624
    const/4 v5, 0x0

    move-object/from16 v0, v162

    move/from16 v1, v28

    move/from16 v2, v145

    move/from16 v3, v98

    move-object v4, v5

    invoke-static {v0, v1, v2, v3, v4}, Landroid/text/Layout;->nextTab(Ljava/lang/CharSequence;IIF[Ljava/lang/Object;)F

    move-result v98

    .line 625
    const/16 v26, 0x1

    goto/16 :goto_516

    .line 626
    :cond_687
    const v5, 0xd800

    move/from16 v0, v138

    move v1, v5

    if-lt v0, v1, :cond_6f8

    const v5, 0xdfff

    move/from16 v0, v138

    move v1, v5

    if-gt v0, v1, :cond_6f8

    add-int/lit8 v5, v153, 0x1

    if-ge v5, v9, :cond_6f8

    .line 627
    sub-int v5, v153, v28

    move-object/from16 v0, v140

    move v1, v5

    invoke-static {v0, v1}, Ljava/lang/Character;->codePointAt([CI)I

    move-result v144

    .line 629
    .local v144, emoji:I
    sget v5, Landroid/text/StaticLayout;->MIN_EMOJI:I

    move/from16 v0, v144

    move v1, v5

    if-lt v0, v1, :cond_6ed

    sget v5, Landroid/text/StaticLayout;->MAX_EMOJI:I

    move/from16 v0, v144

    move v1, v5

    if-gt v0, v1, :cond_6ed

    .line 630
    sget-object v5, Landroid/text/StaticLayout;->EMOJI_FACTORY:Landroid/emoji/EmojiFactory;

    move-object v0, v5

    move/from16 v1, v144

    invoke-virtual {v0, v1}, Landroid/emoji/EmojiFactory;->getBitmapFromAndroidPua(I)Landroid/graphics/Bitmap;

    move-result-object v136

    .line 633
    .local v136, bm:Landroid/graphics/Bitmap;
    if-eqz v136, :cond_6e2

    .line 636
    if-nez v7, :cond_6db

    .line 637
    move-object/from16 v163, p4

    .line 642
    .local v163, whichPaint:Landroid/graphics/Paint;
    :goto_6c1
    invoke-virtual/range {v136 .. v136}, Landroid/graphics/Bitmap;->getWidth()I

    move-result v5

    int-to-float v5, v5

    invoke-virtual/range {v163 .. v163}, Landroid/graphics/Paint;->ascent()F

    move-result v6

    neg-float v6, v6

    mul-float/2addr v5, v6

    invoke-virtual/range {v136 .. v136}, Landroid/graphics/Bitmap;->getHeight()I

    move-result v6

    int-to-float v6, v6

    div-float v164, v5, v6

    .line 646
    .local v164, wid:F
    add-float v98, v98, v164

    .line 647
    const/16 v26, 0x1

    .line 648
    add-int/lit8 v153, v153, 0x1

    .line 649
    goto/16 :goto_516

    .line 639
    .end local v163           #whichPaint:Landroid/graphics/Paint;
    .end local v164           #wid:F
    :cond_6db
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v163, v0

    .restart local v163       #whichPaint:Landroid/graphics/Paint;
    goto :goto_6c1

    .line 650
    .end local v163           #whichPaint:Landroid/graphics/Paint;
    :cond_6e2
    sub-int v5, v153, v28

    sub-int v6, v145, v28

    add-int/2addr v5, v6

    aget v5, v10, v5

    add-float v98, v98, v5

    goto/16 :goto_516

    .line 653
    .end local v136           #bm:Landroid/graphics/Bitmap;
    :cond_6ed
    sub-int v5, v153, v28

    sub-int v6, v145, v28

    add-int/2addr v5, v6

    aget v5, v10, v5

    add-float v98, v98, v5

    goto/16 :goto_516

    .line 656
    .end local v144           #emoji:I
    :cond_6f8
    sub-int v5, v153, v28

    sub-int v6, v145, v28

    add-int/2addr v5, v6

    aget v5, v10, v5

    add-float v98, v98, v5

    goto/16 :goto_516

    .line 710
    :cond_703
    if-eqz p11, :cond_767

    .line 711
    if-eq v15, v14, :cond_741

    .line 714
    :goto_707
    if-ge v15, v9, :cond_714

    sub-int v5, v15, v28

    aget-char v5, v140, v5

    const/16 v6, 0x20

    if-ne v5, v6, :cond_714

    .line 715
    add-int/lit8 v15, v15, 0x1

    goto :goto_707

    .line 718
    :cond_714
    move v0, v15

    move/from16 v1, p3

    if-ne v0, v1, :cond_73d

    const/4 v5, 0x1

    move/from16 v32, v5

    :goto_71c
    sub-int v37, v145, v28

    move-object/from16 v12, p0

    move-object/from16 v13, p1

    move/from16 v21, p7

    move/from16 v22, p8

    move-object/from16 v25, v11

    move/from16 v33, p9

    move/from16 v34, p10

    move-object/from16 v35, v10

    move/from16 v36, v28

    move-object/from16 v38, p13

    move/from16 v39, p12

    move-object/from16 v41, p4

    invoke-direct/range {v12 .. v41}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 730
    move v14, v15

    goto/16 :goto_5f2

    .line 718
    :cond_73d
    const/4 v5, 0x0

    move/from16 v32, v5

    goto :goto_71c

    .line 734
    :cond_741
    move/from16 v69, v98

    .line 735
    add-int/lit8 v44, v153, 0x1

    .line 737
    move/from16 v0, v152

    move/from16 v1, v47

    if-ge v0, v1, :cond_74d

    .line 738
    move/from16 v47, v152

    .line 739
    :cond_74d
    move/from16 v0, v149

    move/from16 v1, v45

    if-ge v0, v1, :cond_755

    .line 740
    move/from16 v45, v149

    .line 741
    :cond_755
    move/from16 v0, v151

    move/from16 v1, v46

    if-le v0, v1, :cond_75d

    .line 742
    move/from16 v46, v151

    .line 743
    :cond_75d
    move/from16 v0, v150

    move/from16 v1, v48

    if-le v0, v1, :cond_5f2

    .line 744
    move/from16 v48, v150

    goto/16 :goto_5f2

    .line 747
    :cond_767
    if-eq v15, v14, :cond_7c3

    .line 750
    :goto_769
    if-ge v15, v9, :cond_776

    sub-int v5, v15, v28

    aget-char v5, v140, v5

    const/16 v6, 0x20

    if-ne v5, v6, :cond_776

    .line 751
    add-int/lit8 v15, v15, 0x1

    goto :goto_769

    .line 754
    :cond_776
    move v0, v15

    move/from16 v1, p3

    if-ne v0, v1, :cond_7bf

    const/4 v5, 0x1

    move/from16 v32, v5

    :goto_77e
    sub-int v37, v145, v28

    move-object/from16 v12, p0

    move-object/from16 v13, p1

    move/from16 v21, p7

    move/from16 v22, p8

    move-object/from16 v25, v11

    move/from16 v33, p9

    move/from16 v34, p10

    move-object/from16 v35, v10

    move/from16 v36, v28

    move-object/from16 v38, p13

    move/from16 v39, p12

    move-object/from16 v41, p4

    invoke-direct/range {v12 .. v41}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 766
    move v14, v15

    .line 806
    .end local v98           #w:F
    :goto_79d
    if-ge v14, v8, :cond_87f

    .line 807
    move v9, v14

    move/from16 v153, v14

    .line 812
    :goto_7a2
    move/from16 v44, v14

    move v15, v14

    .line 813
    const/16 v98, 0x0

    .line 814
    .restart local v98       #w:F
    const/16 v48, 0x0

    move/from16 v47, v48

    move/from16 v46, v48

    move/from16 v45, v48

    .line 815
    const/16 v19, 0x0

    move/from16 v18, v19

    move/from16 v17, v19

    move/from16 v16, v19

    .line 818
    add-int/lit8 v147, v147, -0x1

    if-gtz v147, :cond_5f2

    .line 819
    move/from16 v165, v159

    goto/16 :goto_5f2

    .line 754
    :cond_7bf
    const/4 v5, 0x0

    move/from16 v32, v5

    goto :goto_77e

    .line 767
    :cond_7c3
    move/from16 v0, v44

    move v1, v14

    if-eq v0, v1, :cond_80a

    .line 769
    move/from16 v0, v44

    move/from16 v1, p3

    if-ne v0, v1, :cond_806

    const/4 v5, 0x1

    move/from16 v61, v5

    :goto_7d1
    sub-int v66, v145, v28

    move-object/from16 v41, p0

    move-object/from16 v42, p1

    move/from16 v43, v14

    move/from16 v49, v20

    move/from16 v50, p7

    move/from16 v51, p8

    move-object/from16 v52, v23

    move-object/from16 v53, v24

    move-object/from16 v54, v11

    move/from16 v55, v26

    move/from16 v56, v27

    move/from16 v57, v28

    move-object/from16 v58, v29

    move/from16 v59, v30

    move/from16 v60, v31

    move/from16 v62, p9

    move/from16 v63, p10

    move-object/from16 v64, v10

    move/from16 v65, v28

    move-object/from16 v67, p13

    move/from16 v68, p12

    move-object/from16 v70, p4

    invoke-direct/range {v41 .. v70}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 782
    move/from16 v14, v44

    goto :goto_79d

    .line 769
    :cond_806
    const/4 v5, 0x0

    move/from16 v61, v5

    goto :goto_7d1

    .line 785
    :cond_80a
    move-object/from16 v0, p0

    iget-object v0, v0, Landroid/text/StaticLayout;->mWorkPaint:Landroid/text/TextPaint;

    move-object/from16 v33, v0

    add-int/lit8 v36, v14, 0x1

    const/16 v39, 0x0

    move-object/from16 v32, p4

    move-object/from16 v34, p1

    move/from16 v35, v14

    move-object/from16 v37, v11

    move/from16 v38, v26

    invoke-static/range {v32 .. v39}, Landroid/text/StaticLayout;->measureText(Landroid/text/TextPaint;Landroid/text/TextPaint;Ljava/lang/CharSequence;IILandroid/graphics/Paint$FontMetricsInt;Z[Ljava/lang/Object;)F

    .line 789
    add-int/lit8 v73, v14, 0x1

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v74, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v75, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v76, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v77, v0

    add-int/lit8 v5, v14, 0x1

    move v0, v5

    move/from16 v1, p3

    if-ne v0, v1, :cond_87b

    const/4 v5, 0x1

    move/from16 v90, v5

    :goto_841
    sub-int v95, v145, v28

    sub-int v5, v14, v28

    aget v98, v10, v5

    .end local v98           #w:F
    move-object/from16 v70, p0

    move-object/from16 v71, p1

    move/from16 v72, v14

    move/from16 v78, v20

    move/from16 v79, p7

    move/from16 v80, p8

    move-object/from16 v81, v23

    move-object/from16 v82, v24

    move-object/from16 v83, v11

    move/from16 v84, v26

    move/from16 v85, v27

    move/from16 v86, v28

    move-object/from16 v87, v29

    move/from16 v88, v30

    move/from16 v89, v31

    move/from16 v91, p9

    move/from16 v92, p10

    move-object/from16 v93, v10

    move/from16 v94, v28

    move-object/from16 v96, p13

    move/from16 v97, p12

    move-object/from16 v99, p4

    invoke-direct/range {v70 .. v99}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 803
    add-int/lit8 v14, v14, 0x1

    goto/16 :goto_79d

    .line 789
    .restart local v98       #w:F
    :cond_87b
    const/4 v5, 0x0

    move/from16 v90, v5

    goto :goto_841

    .line 809
    .end local v98           #w:F
    :cond_87f
    const/4 v5, 0x1

    sub-int v153, v14, v5

    goto/16 :goto_7a2

    .line 570
    .end local v135           #before:F
    .end local v138           #c:C
    .restart local v98       #w:F
    :cond_884
    move v8, v9

    goto/16 :goto_4c8

    .line 825
    .end local v9           #next:I
    .end local v149           #fmascent:I
    .end local v150           #fmbottom:I
    .end local v151           #fmdescent:I
    .end local v152           #fmtop:I
    .end local v153           #j:I
    :cond_887
    move/from16 v0, v145

    move v1, v14

    if-eq v0, v1, :cond_8f3

    .line 826
    or-int v5, v47, v48

    or-int v5, v5, v46

    or-int v5, v5, v45

    if-nez v5, :cond_8ae

    .line 827
    move-object/from16 v0, p4

    move-object v1, v11

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I

    .line 829
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v47, v0

    .line 830
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v48, v0

    .line 831
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v45, v0

    .line 832
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v46, v0

    .line 837
    :cond_8ae
    move/from16 v0, v145

    move/from16 v1, p3

    if-ne v0, v1, :cond_960

    const/4 v5, 0x1

    move/from16 v90, v5

    :goto_8b7
    sub-int v95, v145, v28

    move-object/from16 v70, p0

    move-object/from16 v71, p1

    move/from16 v72, v14

    move/from16 v73, v145

    move/from16 v74, v45

    move/from16 v75, v46

    move/from16 v76, v47

    move/from16 v77, v48

    move/from16 v78, v20

    move/from16 v79, p7

    move/from16 v80, p8

    move-object/from16 v81, v23

    move-object/from16 v82, v24

    move-object/from16 v83, v11

    move/from16 v84, v26

    move/from16 v85, v27

    move/from16 v86, v28

    move-object/from16 v87, v29

    move/from16 v88, v30

    move/from16 v89, v31

    move/from16 v91, p9

    move/from16 v92, p10

    move-object/from16 v93, v10

    move/from16 v94, v28

    move-object/from16 v96, p13

    move/from16 v97, p12

    move-object/from16 v99, p4

    invoke-direct/range {v70 .. v99}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 849
    :cond_8f3
    move/from16 v28, v145

    .line 851
    move/from16 v0, v145

    move/from16 v1, p3

    if-ne v0, v1, :cond_965

    .line 855
    .end local v8           #i:I
    .end local v14           #here:I
    .end local v15           #ok:I
    .end local v16           #okascent:I
    .end local v17           #okdescent:I
    .end local v18           #oktop:I
    .end local v19           #okbottom:I
    .end local v23           #chooseht:[Landroid/text/style/LineHeightSpan;
    .end local v26           #tab:Z
    .end local v30           #dir:I
    .end local v31           #easy:Z
    .end local v40           #okwidth:F
    .end local v44           #fit:I
    .end local v45           #fitascent:I
    .end local v46           #fitdescent:I
    .end local v47           #fittop:I
    .end local v48           #fitbottom:I
    .end local v69           #fitwidth:F
    .end local v98           #w:F
    .end local v133           #altered:Z
    .end local v147           #firstWidthLineCount:I
    .end local v148           #firstwidth:I
    .end local v156           #n:I
    .end local v159           #restwidth:I
    .end local v162           #sub:Ljava/lang/CharSequence;
    .end local v165           #width:I
    :cond_8fb
    move/from16 v0, p3

    move/from16 v1, p2

    if-eq v0, v1, :cond_90f

    const/4 v5, 0x1

    sub-int v5, p3, v5

    move-object/from16 v0, p1

    move v1, v5

    invoke-interface {v0, v1}, Ljava/lang/CharSequence;->charAt(I)C

    move-result v5

    const/16 v6, 0xa

    if-ne v5, v6, :cond_95f

    .line 858
    :cond_90f
    move-object/from16 v0, p4

    move-object v1, v11

    invoke-virtual {v0, v1}, Landroid/text/TextPaint;->getFontMetricsInt(Landroid/graphics/Paint$FontMetricsInt;)I

    .line 860
    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->ascent:I

    move/from16 v103, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->descent:I

    move/from16 v104, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->top:I

    move/from16 v105, v0

    move-object v0, v11

    iget v0, v0, Landroid/graphics/Paint$FontMetricsInt;->bottom:I

    move/from16 v106, v0

    const/16 v110, 0x0

    const/16 v111, 0x0

    const/16 v113, 0x0

    const/16 v118, 0x1

    const/16 v119, 0x1

    const/16 v124, 0x0

    const/16 v127, 0x0

    move-object/from16 v99, p0

    move-object/from16 v100, p1

    move/from16 v101, p3

    move/from16 v102, p3

    move/from16 v107, v20

    move/from16 v108, p7

    move/from16 v109, p8

    move-object/from16 v112, v11

    move/from16 v114, v27

    move/from16 v115, p3

    move-object/from16 v116, v29

    move/from16 v120, p9

    move/from16 v121, p10

    move-object/from16 v122, v10

    move/from16 v123, p2

    move-object/from16 v125, p13

    move/from16 v126, p12

    move-object/from16 v128, p4

    invoke-direct/range {v99 .. v128}, Landroid/text/StaticLayout;->out(Ljava/lang/CharSequence;IIIIIIIFF[Landroid/text/style/LineHeightSpan;[ILandroid/graphics/Paint$FontMetricsInt;ZZI[BIZZZZ[FIILandroid/text/TextUtils$TruncateAt;FFLandroid/text/TextPaint;)I

    move-result v20

    .line 871
    :cond_95f
    return-void

    .line 837
    .restart local v8       #i:I
    .restart local v14       #here:I
    .restart local v15       #ok:I
    .restart local v16       #okascent:I
    .restart local v17       #okdescent:I
    .restart local v18       #oktop:I
    .restart local v19       #okbottom:I
    .restart local v23       #chooseht:[Landroid/text/style/LineHeightSpan;
    .restart local v26       #tab:Z
    .restart local v30       #dir:I
    .restart local v31       #easy:Z
    .restart local v40       #okwidth:F
    .restart local v44       #fit:I
    .restart local v45       #fitascent:I
    .restart local v46       #fitdescent:I
    .restart local v47       #fittop:I
    .restart local v48       #fitbottom:I
    .restart local v69       #fitwidth:F
    .restart local v98       #w:F
    .restart local v133       #altered:Z
    .restart local v147       #firstWidthLineCount:I
    .restart local v148       #firstwidth:I
    .restart local v156       #n:I
    .restart local v159       #restwidth:I
    .restart local v162       #sub:Ljava/lang/CharSequence;
    .restart local v165       #width:I
    :cond_960
    const/4 v5, 0x0

    move/from16 v90, v5

    goto/16 :goto_8b7

    .line 153
    :cond_965
    move/from16 v28, v145

    goto/16 :goto_86

    .line 474
    nop

    :pswitch_data_96a
    .packed-switch 0x2b
        :pswitch_40f
    .end packed-switch
.end method

.method public getBottomPadding()I
    .registers 2

    .prologue
    .line 1307
    iget v0, p0, Landroid/text/StaticLayout;->mBottomPadding:I

    return v0
.end method

.method public getEllipsisCount(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1312
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    const/4 v1, 0x5

    if-ge v0, v1, :cond_7

    .line 1313
    const/4 v0, 0x0

    .line 1316
    :goto_6
    return v0

    :cond_7
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x4

    aget v0, v0, v1

    goto :goto_6
.end method

.method public getEllipsisStart(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1321
    iget v0, p0, Landroid/text/StaticLayout;->mColumns:I

    const/4 v1, 0x5

    if-ge v0, v1, :cond_7

    .line 1322
    const/4 v0, 0x0

    .line 1325
    :goto_6
    return v0

    :cond_7
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x3

    aget v0, v0, v1

    goto :goto_6
.end method

.method public getEllipsizedWidth()I
    .registers 2

    .prologue
    .line 1330
    iget v0, p0, Landroid/text/StaticLayout;->mEllipsizedWidth:I

    return v0
.end method

.method public getLineContainsTab(I)Z
    .registers 4
    .parameter "line"

    .prologue
    .line 1295
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x0

    aget v0, v0, v1

    const/high16 v1, 0x2000

    and-int/2addr v0, v1

    if-eqz v0, :cond_10

    const/4 v0, 0x1

    :goto_f
    return v0

    :cond_10
    const/4 v0, 0x0

    goto :goto_f
.end method

.method public getLineCount()I
    .registers 2

    .prologue
    .line 1274
    iget v0, p0, Landroid/text/StaticLayout;->mLineCount:I

    return v0
.end method

.method public getLineDescent(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1282
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x2

    aget v0, v0, v1

    return v0
.end method

.method public final getLineDirections(I)Landroid/text/Layout$Directions;
    .registers 3
    .parameter "line"

    .prologue
    .line 1299
    iget-object v0, p0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    aget-object v0, v0, p1

    return-object v0
.end method

.method public getLineForVertical(I)I
    .registers 8
    .parameter "vertical"

    .prologue
    .line 1254
    iget v1, p0, Landroid/text/StaticLayout;->mLineCount:I

    .line 1255
    .local v1, high:I
    const/4 v3, -0x1

    .line 1257
    .local v3, low:I
    iget-object v2, p0, Landroid/text/StaticLayout;->mLines:[I

    .line 1258
    .local v2, lines:[I
    :goto_5
    sub-int v4, v1, v3

    const/4 v5, 0x1

    if-le v4, v5, :cond_1b

    .line 1259
    add-int v4, v1, v3

    shr-int/lit8 v0, v4, 0x1

    .line 1260
    .local v0, guess:I
    iget v4, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v4, v0

    add-int/lit8 v4, v4, 0x1

    aget v4, v2, v4

    if-le v4, p1, :cond_19

    .line 1261
    move v1, v0

    goto :goto_5

    .line 1263
    :cond_19
    move v3, v0

    goto :goto_5

    .line 1266
    .end local v0           #guess:I
    :cond_1b
    if-gez v3, :cond_1f

    .line 1267
    const/4 v4, 0x0

    .line 1269
    :goto_1e
    return v4

    :cond_1f
    move v4, v3

    goto :goto_1e
.end method

.method public getLineStart(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1286
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x0

    aget v0, v0, v1

    const v1, 0x1fffffff

    and-int/2addr v0, v1

    return v0
.end method

.method public getLineTop(I)I
    .registers 4
    .parameter "line"

    .prologue
    .line 1278
    iget-object v0, p0, Landroid/text/StaticLayout;->mLines:[I

    iget v1, p0, Landroid/text/StaticLayout;->mColumns:I

    mul-int/2addr v1, p1

    add-int/lit8 v1, v1, 0x1

    aget v0, v0, v1

    return v0
.end method

.method public getParagraphDirection(I)I
    .registers 3
    .parameter "line"

    .prologue
    .line 1291
    iget-object v0, p0, Landroid/text/StaticLayout;->mLineDirections:[Landroid/text/Layout$Directions;

    aget-object v0, v0, p1

    invoke-virtual {v0}, Landroid/text/Layout$Directions;->hasRTL()Z

    move-result v0

    if-eqz v0, :cond_c

    const/4 v0, -0x1

    :goto_b
    return v0

    :cond_c
    const/4 v0, 0x1

    goto :goto_b
.end method

.method public getTopPadding()I
    .registers 2

    .prologue
    .line 1303
    iget v0, p0, Landroid/text/StaticLayout;->mTopPadding:I

    return v0
.end method
